return {
  snippet = function ()
    local ls = require("luasnip")
    -- some shorthands...
    local s = ls.snippet
    -- local sn = ls.snippet_node
    local t = ls.text_node
    local i = ls.insert_node
    -- local f = ls.function_node
    -- local c = ls.choice_node
    -- local d = ls.dynamic_node
    -- local r = ls.restore_node
    -- local l = require("luasnip.extras").lambda
    -- local rep = require("luasnip.extras").rep
    -- local p = require("luasnip.extras").partial
    -- local m = require("luasnip.extras").match
    -- local n = require("luasnip.extras").nonempty
    -- local dl = require("luasnip.extras").dynamic_lambda
    -- local fmt = require("luasnip.extras.fmt").fmt
    -- local fmta = require("luasnip.extras.fmt").fmta
    -- local types = require("luasnip.util.types")
    -- local conds = require("luasnip.extras.conditions")
    -- local conds_expand = require("luasnip.extras.conditions.expand")

    local snip = {
      s("always", {
        t("always @("),
        i(1, "events"),
        t({") begin", "\t"}),
        i(2),
        t({"", "end"}),
      }),
      s("if", {
        t("if ("),
        i(1, "conditions"),
        t({") begin", "\t"}),
        i(2),
        t({"", "end"}),
      }),
      s("case", {
        t("case ("),
        i(1, "signals"),
        t({")", "\t"}),
        i(2),
        t({"", "endcase"}),
      }),
      s("module", {
        t("module "),
        i(1, "ModuleName"),
        t({" (", "\t"}),
        i(2),
        t({"", ");", "\t"}),
        i(3),
        t({"", "endmodule"}),
      }),
      s("`include", {
        t("`include \""),
        i(1, "filename"),
        t("\""),
      }),
      s("`define", {
        t("`define "),
        i(1, "MacroName"),
        t(" "),
        i(2, "expression"),
      }),
    }

    return snip
  end
}
